This invention relates to real-time computation systems and, more particularly, to scaling the value of parameters in real-time computation systems.
Computation systems that perform binary computations involve implementation issues such as bit precision. Bit precision refers to the number of bits that are available to represent a value's whole and/or decimal parts. A greater bit precision allows a larger range of values to be represented. For example, suppose the notation U(w·−d) indicates that w bits are used to represent the whole part of a value, and d bits are used to represent the decimal part of a value. The w bits can represent 0, 1, 2, . . . , 2w−1 for the whole part of a value, and the d bits can represent decimal values in increments of ½d. In some cases, the w bits can use one bit as a sign indicator, so that the w bits can represent 0, ±1, ±2, . . . , ±2w-1, −2w for the whole part of a value. The sum (w+d) will be referred to herein as “bit width.”
The bit width for all binary computation systems is finite. Therefore, binary computation systems can only represent a finite range of whole and/or decimal values. When computations involve the use of values that are outside this finite range, such computations cannot be accurately represented and the computation can be incorrect. This condition will be referred to herein as “overflow.” One way to mitigate the effects of overflow includes scaling each value used in the computation by a scaling factor to bring all of the values into the range represented by the bit width. In some situations, the same scaling factor can be used regardless of the values in the computation. However, in other situations, it may be more beneficial to use a dynamic scaling factor for each computation that is based on the values used in that computation. In this situation, the computation is especially time consuming because it must wait for the dynamic scaling factor to be determined, and then, afterwards, perform the computation based on the dynamic scaling factor.
The use of a dynamic scaling factor can be time consuming and may present unacceptable computation latencies, especially in real-time computation systems. As used herein, the term “real-time computation system” refers to a system that performs the computation of input according to a specific function and generates output accurately within a specific amount of time. For example, in some real-time computation systems, the stream of output values may need to be produced almost instantaneously (e.g., in a fraction of a second) after receiving input values. Real-time computation system may need dynamic parameter scaling to mitigate the effects of overflow, despite latency concerns associated with dynamic parameter scaling. Accordingly, there is interest in reducing the latency incurred when scaling parameters in real-time computation systems.